/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package co.edu.univalle.proyecto.logica;

import co.edu.univalle.proyecto.modelo.Usuarios;
import co.edu.univalle.proyecto.persistencia.UsuariosDAOLocal;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author CQ 43 - 450LA
 */
@Stateless
public class UsuarioLogica implements UsuarioLogicaLocal {
    
    @EJB
    private UsuariosDAOLocal usuarioDAO;

    @Override
    public void registrar(Usuarios usuario) throws Exception {
          if(usuario==null){
            throw new Exception("El usuario no tiene los datos necesarios");
        }
           if(usuario.getMail()==null){
            throw new Exception("El usuario debe tener mail");
        }
          
        Usuarios objUsuario = usuarioDAO.consultarPorMail(usuario.getMail());
        if(objUsuario != null){
            throw new Exception("El usuario ya Existe");
        }
        if(usuario.getNombre()==null || usuario.getNombre().equals("")){
            throw new Exception("El nombre no puede ser vacío");
        }
        usuarioDAO.registrar(usuario);
    }

    @Override
    public void eliminar(Usuarios usuario) throws Exception {
         if(usuario==null){
            throw new Exception("El usuario no tiene los datos necesarios");
        }
        Usuarios objUsuario = usuarioDAO.consultarPorMail(usuario.getMail());
        if(objUsuario == null){
            throw new Exception("El usuario a eliminar no Existe");
        }
     
        usuarioDAO.eliminar(usuario);
    }

    @Override
    public void modificar(Usuarios usuario) throws Exception {
        if(usuario==null){
            throw new Exception("El usuario no tiene los datos necesarios");
        }
        Usuarios objUsuario = usuarioDAO.consultarPorMail(usuario.getMail());
        if(objUsuario == null){
            throw new Exception("El usuario ya no Existe");
        }
        if(usuario.getNombre()==null || usuario.getNombre().equals("")){
            throw new Exception("El nombre no puede ser vacío");
        }
        usuarioDAO.modificar(usuario);
    }

    @Override
    public List<Usuarios> consultar() throws Exception {
       return usuarioDAO.consultar();
    }

    @Override
    public Usuarios consultarPorMail(String mail) throws Exception {
        
       
if(mail==null || mail.equals("")){
            throw new Exception("El Mail es obligatorio");
        }
        return usuarioDAO.consultarPorMail(mail);
    }

    

}
